/**

 @Name：layuiAdmin 角色管理 管理员管理 角色管理
 @Author：star1029
 @Site：http://www.layui.com/admin/
 @License：LPPL

 */


layui.define(['table', 'form', 'extensive'], function (exports) {
    var $ = layui.$
        , table = layui.table
        , form = layui.form;

    //角色管理
    table.render({
        elem: '#LAY-role-manage'
        , autoSort: false
        , initSort: {
            field: 'id' //排序字段，对应 cols 设定的各字段名
            , type: 'asc' //排序方式  asc: 升序、desc: 降序、null: 默认排序
        }
        , url: '/role/list' //模拟接口
        , parseData: layui.extensive.toTableData
        , cols: [[
            {type: 'checkbox', fixed: 'left'}
            , {field: 'id', width: 100, title: 'ID', sort: true}
            , {field: 'name', title: '名称', minWidth: 100, sort: true}
            , {title: '操作', width: 150, align: 'center', fixed: 'right', toolbar: '#table-roleAdmin-webrole'}
        ]]
        , page: true
        , limit: 30
        , height: 'full-180'
        , text: '对不起，加载出现异常！'
    });

    //监听排序事件
    table.on('sort(LAY-role-manage)', function (obj) { //注：sort 是工具条事件名，test 是 table 原始容器的属性 lay-filter="对应的值"

        //尽管我们的 table 自带排序功能，但并没有请求服务端。
        //有些时候，你可能需要根据当前排序的字段，重新向服务端发送请求，从而实现服务端排序，如：
        table.reload('LAY-role-manage', {
            initSort: obj //记录初始排序，如果不设的话，将无法标记表头的排序状态。
            , where: { //请求参数（注意：这里面的参数可任意定义，并非下面固定的格式）
                sort: obj.field //排序字段
                , order: obj.type //排序方式
            }
        });
    });
    //监听工具条
    table.on('tool(LAY-role-manage)', function (obj) {
        var data = obj.data;
        if (obj.event === 'del') {
            layer.confirm('真的删除行么', function (index) {
                var loading = layer.load(0, {
                    shade: false
                });
                $.post('/role/delete', {id: JSON.stringify([data.id])}, function (result) {
                    if (result.code == 0) {
                        obj.del();
                    } else {
                        layer.open({
                            title: '修改失败',
                            content: result.message
                        });
                    }
                }, 'json').complete(function () {
                    layer.close(loading);
                })

                layer.close(index);
            });
        } else if (obj.event === 'edit') {
            var tr = $(obj.tr);

            layer.open({
                type: 2
                , title: '编辑角色'
                , content: ['/role/edit?id=' + obj.data.id,'no']
                , maxmin: true
                , area: ['500px', '200px']
                , btn: ['确定', '取消']
                , yes: function (index, layero) {
                    var iframeWindow = window['layui-layer-iframe' + index]
                        , submitID = 'LAY-role-front-submit'
                        , submit = layero.find('iframe').contents().find('#' + submitID);

                    //监听提交
                    iframeWindow.layui.form.on('submit(' + submitID + ')', function (data) {
                        var field = data.field; //获取提交的字段
                        var loading = layer.load(0, {
                            shade: false
                        });

                        let role = {};
                        role.id = field.id;
                        role.name = field.name;
                        role.index = field.index;
                        role.category = field.category;
                        role.icon = field.icon;
                        role.privilegeId = field.privilegeId;
                        role.url=field.url;

                        $.post('/role/update', {
                            role: JSON.stringify(role)
                        }, function (result) {
                            if (result.code == 0) {
                                table.reload('LAY-role-manage'); //数据刷新
                                layer.close(index); //关闭弹层
                            } else {
                                layer.open({
                                    title: '修改失败',
                                    content: result.message
                                });
                            }
                        }, 'json').complete(function () {
                            layer.close(loading);
                        })
                        //提交 Ajax 成功后，静态更新表格中的数据
                        //$.ajax({});

                    });

                    submit.trigger('click');
                }
                , success: function (layero, index) {

                }
            });
        }
    });


    exports('roleAdmin', {})
});